﻿Imports Oracle.DataAccess.Client
Imports System.Data.OleDb

Partial Class Inicio
    Inherits System.Web.UI.Page
    Private x As Integer
    Private Cmd As OracleCommand
    Private dt As Data.DataTable
    Private Cnx As OracleConnection
    Private oradb As String = "Data Source=XE;User Id=SIRA;Password=SIRA123;"
    Private Sql As String
    Private dr As OracleDataReader

    Protected Sub btnAceptar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAceptar.Click
        If ViewState("Intentos") = 3 Then
            MsgBox("Cierre la aplicación" & vbCrLf & "Contactese con el administrador del sistema", MsgBoxStyle.Critical, _
            "Error loguin 3 intentos")
            Exit Sub
        End If
        If txtUser.Text.Length = 0 Then
            MsgBox("No puedo ejecutar loguin : Falta usuario" & vbCrLf, MsgBoxStyle.Critical, _
            "Introduzca su Nick de usuario")
            Exit Sub
        End If
        If pwd1.Value = "" Then
            MsgBox("No puedo ejecutar loguin : Falta password" & vbCrLf, MsgBoxStyle.Critical, _
            "Introduzca su Password de usuario")
            Exit Sub
        End If

        Cnx = New OracleConnection(oradb)
        Sql = "SELECT Usuarios.*, UsuariosCategorias.Categoria, " & _
              "TBL_Nodos.Descripcion as NodoDescripcion, Comisarias.Descripcion as ComiDescripcion " & _
              "FROM Usuarios,UsuariosCategorias, TBL_Nodos, Comisarias " & _
              "WHERE Usuarios.Nick = '" & txtUser.Text & "' AND Usuarios.Password = '" & pwd1.Value & "' " & _
              "AND Usuarios.IdCategoria = UsuariosCategorias.IdCategoria " & _
              "AND Usuarios.IdComisaria = Comisarias.IdComisaria " & _
              "AND Usuarios.IdNodo = TBL_Nodos.IdNodo"
        Try
            Cnx.Open()
            Cmd = New OracleCommand(Sql, Cnx)
            Cmd.CommandType = Data.CommandType.Text
            Cmd.ExecuteNonQuery()
            dr = Cmd.ExecuteReader()
            If dr.Read() Then
                ViewState("Intentos") = 0
                Session("VarSessionUserNick") = dr.Item("Nick")
                Session("VarSessionUserNombre") = dr.Item("Nombre")
                Session("VarSessionUserIdUsuario") = dr.Item("IdUsuario")
                Session("VarSessionUserIdCategoria") = dr.Item("IdCategoria")
                Session("VarSessionUserCategoria") = dr.Item("Categoria")
                Session("VarSessionUserIdComisaria") = dr.Item("IdComisaria")
                Session("VarSessionUserComisaria") = dr.Item("ComiDescripcion")
                Session("VarSessionUserIdNodo") = dr.Item("IdNodo")
                Session("VarSessionUserNodo") = dr.Item("NodoDescripcion")
            Else
                ViewState("Intentos") = ViewState("Intentos") + 1
                MsgBox("Usuario o Password invalido" & vbCrLf & "Intento " & ViewState("Intentos") & " de 3", MsgBoxStyle.Critical, _
                "Error loguin")
                txtUser.Text = "" : pwd1.Value = ""
                Cnx.Close() : dr.Dispose() : Cmd.Dispose() : Cnx.Dispose()
                If ViewState("Intentos") = 3 Then
                    MsgBox("Cierre la aplicación" & vbCrLf & "Contactese con el administrador del sistema", MsgBoxStyle.Critical, _
                    "Error loguin 3 intentos")
                    Exit Sub
                End If
                Exit Sub
            End If
        Catch ex As Exception
            MsgBox("No puedo abrir tabla Usuarios" & vbCrLf & ex.Message, MsgBoxStyle.Critical, "Error proceso Loguin - Inicio.aspx")
        Finally
        End Try
        LiberarRecursos()
        Response.Redirect("Menu.aspx")
    End Sub
    Protected Sub LiberarRecursos()
        Cnx.Close()
        dr.Dispose()
        Cmd.Dispose()
        Cnx.Dispose()
    End Sub

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Body.Attributes("bgcolor") = DropDownList1.SelectedValue
        Session("VarSessionUserNick") = ""
        Session("VarSessionUserNombre") = ""
        Session("VarSessionUserIdUsuario") = 0
        Session("VarSessionUserIdCategoria") = 0
        Session("VarSessionUserCategoria") = ""
        Session("VarSessionUserIdComisaria") = 0
        Session("VarSessionUserComisaria") = ""
        Session("VarSessionUserIdNodo") = 0
        Session("VarSessionUserNodo") = ""
    End Sub

    Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
        Body.Attributes("bgcolor") = DropDownList1.SelectedValue
    End Sub
End Class
